package com.sunspring.zdcall.websockt;

import com.google.common.collect.Maps;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * webSocket全局管理
 * 注册成bean（单例模式）
 * @Author WuLei
 * @Date 2018/11/26  15:41
 */
@Component
public class SessionManager {

    /**
     * webSocket端点ID绑定
     */
    public static ConcurrentHashMap<String,String> sessionMap = new ConcurrentHashMap<>();


    /**
     * 注册Session
     */
    public synchronized void registerSession(String classId, String sessionId) {
        sessionMap.put(classId,sessionId);
    }

    /**
     * 移除Session
     */
    public synchronized void removeSession(String classId, String sessionId) {
        sessionMap.remove(classId);
    }

    /**
     * 获取科室的SessionId
     */
    public String getClassSessionId(String classId){
        return sessionMap.get(classId);
    }

    /**
     * 获取所有Session集合
     */
    public Map<String, String> queryAllSession(){
        return sessionMap;
    }
    /**
     * 获取集合的大小
     */
    public int onlineCount(){
        return sessionMap.size();
    }
}
